/*
 * MapAddress.h
 *
 *  Created on: Oct 31, 2009
 *      Author: jbarreneche
 */

#ifndef MAPADDRESS_H_
#define MAPADDRESS_H_
#include "MapPoint.h"

#include "core/Vertex.h"
#include "map/RoadSegment.h"

#include "util/MathUtils.h"
#include "util/LinkedList.h"


class MapAddress : public MapPoint {
public:
	MapAddress(Vertex* vertex, RoadSegment* segment, int height) : MapPoint(segment->getPointAt(height)) {
		this->segment = segment;
		this->height = height;
		this->vertex = vertex;
	}
//	MapAddress(const MapAddress &copy) : MapPoint(copy) {
//		this->segment = copy.segment;
//		this->vertex = copy.vertex;
//		this->height = copy.height;
//	}
	virtual ~MapAddress() {}
	virtual Vertex* getVertex() { return this->vertex; }
	virtual RoadSegment* getSegment() { return this->segment; }
	virtual int getHeight() { return height; }
private:
	Vertex* vertex;
	RoadSegment* segment;
	int height;
};

#include "map/RoadSegment.h"

#endif /* MAPADDRESS_H_ */
